<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::recognition::TrimmedICP&lt; PointT, Scalar &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1recognition_1_1_trimmed_i_c_p.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-static-methods">静态 Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="classpcl_1_1recognition_1_1_trimmed_i_c_p-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::recognition::TrimmedICP&lt; PointT, Scalar &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
类 pcl::recognition::TrimmedICP&lt; PointT, Scalar &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1recognition_1_1_trimmed_i_c_p.png" usemap="#pcl::recognition::TrimmedICP_3C_20PointT_2C_20Scalar_20_3E_map" alt=""/>
  <map id="pcl::recognition::TrimmedICP_3C_20PointT_2C_20Scalar_20_3E_map" name="pcl::recognition::TrimmedICP_3C_20PointT_2C_20Scalar_20_3E_map">
<area href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html" alt="pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;" shape="rect" coords="0,56,419,80"/>
<area href="classpcl_1_1registration_1_1_transformation_estimation.html" title="TransformationEstimation represents the base class for methods for transformation estimation based on..." alt="pcl::registration::TransformationEstimation&lt; PointSource, PointTarget, Scalar &gt;" shape="rect" coords="0,0,419,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:acf140d9d9fbf7fe10df7124fd197ac4f"><td class="memItemLeft" align="right" valign="top"><a id="acf140d9d9fbf7fe10df7124fd197ac4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:acf140d9d9fbf7fe10df7124fd197ac4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86602dbe97d1600c1db4bafb11b18bde"><td class="memItemLeft" align="right" valign="top"><a id="a86602dbe97d1600c1db4bafb11b18bde"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:a86602dbe97d1600c1db4bafb11b18bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e55589a176e117fed37d87924c29e7c"><td class="memItemLeft" align="right" valign="top"><a id="a4e55589a176e117fed37d87924c29e7c"></a>
typedef Eigen::Matrix&lt; Scalar, 4, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Matrix4</b></td></tr>
<tr class="separator:a4e55589a176e117fed37d87924c29e7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;</a></td></tr>
<tr class="memitem:ac0303d80b743930c160fa3c16876e1e6 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top"><a id="ac0303d80b743930c160fa3c16876e1e6"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">TransformationEstimationSVD</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:ac0303d80b743930c160fa3c16876e1e6 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ac4b0578ac435650516e155775a77c2 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top"><a id="a5ac4b0578ac435650516e155775a77c2"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">TransformationEstimationSVD</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a5ac4b0578ac435650516e155775a77c2 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55ed792254a6571219f55d5dd60a7804 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top"><a id="a55ed792254a6571219f55d5dd60a7804"></a>
typedef <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation.html">TransformationEstimation</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Scalar &gt;::Matrix4&#160;</td><td class="memItemRight" valign="bottom"><b>Matrix4</b></td></tr>
<tr class="separator:a55ed792254a6571219f55d5dd60a7804 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1registration_1_1_transformation_estimation')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation.html">pcl::registration::TransformationEstimation&lt; PointSource, PointTarget, Scalar &gt;</a></td></tr>
<tr class="memitem:a07897a083da1df8960c5888a5374fc02 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memItemLeft" align="right" valign="top"><a id="a07897a083da1df8960c5888a5374fc02"></a>
typedef Eigen::Matrix&lt; Scalar, 4, 4 &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Matrix4</b></td></tr>
<tr class="separator:a07897a083da1df8960c5888a5374fc02 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b20a4f0bf5ab8ba875e98a97d33aff9 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memItemLeft" align="right" valign="top"><a id="a0b20a4f0bf5ab8ba875e98a97d33aff9"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation.html">TransformationEstimation</a>&lt; PointSource, PointTarget, Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a0b20a4f0bf5ab8ba875e98a97d33aff9 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e5af204000fd2ca1490b6cae58d1695 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memItemLeft" align="right" valign="top"><a id="a5e5af204000fd2ca1490b6cae58d1695"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation.html">TransformationEstimation</a>&lt; PointSource, PointTarget, Scalar &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a5e5af204000fd2ca1490b6cae58d1695 inherit pub_types_classpcl_1_1registration_1_1_transformation_estimation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:adc59783e43985ad88d7385efa1245bdc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#adc59783e43985ad88d7385efa1245bdc">init</a> (const PointCloudConstPtr &amp;target)</td></tr>
<tr class="memdesc:adc59783e43985ad88d7385efa1245bdc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this method before calling <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#afbd539da63874303468d2ae65a3a2496" title="The method performs trimmed ICP, i.e., it rigidly registers the source to the target (passed to the i...">align()</a>.  <a href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#adc59783e43985ad88d7385efa1245bdc">更多...</a><br /></td></tr>
<tr class="separator:adc59783e43985ad88d7385efa1245bdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbd539da63874303468d2ae65a3a2496"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#afbd539da63874303468d2ae65a3a2496">align</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;source_points, int num_source_points_to_use, Matrix4 &amp;guess_and_result) const</td></tr>
<tr class="memdesc:afbd539da63874303468d2ae65a3a2496"><td class="mdescLeft">&#160;</td><td class="mdescRight">The method performs trimmed ICP, i.e., it rigidly registers the source to the target (passed to the <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#adc59783e43985ad88d7385efa1245bdc" title="Call this method before calling align().">init()</a> method).  <a href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#afbd539da63874303468d2ae65a3a2496">更多...</a><br /></td></tr>
<tr class="separator:afbd539da63874303468d2ae65a3a2496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb1a2b0c76762e156da402837d7081f0"><td class="memItemLeft" align="right" valign="top"><a id="afb1a2b0c76762e156da402837d7081f0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setNewToOldEnergyRatio</b> (float ratio)</td></tr>
<tr class="separator:afb1a2b0c76762e156da402837d7081f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;</a></td></tr>
<tr class="memitem:a70e8c902cec810b4430f50e77465cb00 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a70e8c902cec810b4430f50e77465cb00">TransformationEstimationSVD</a> (bool use_umeyama=true)</td></tr>
<tr class="memdesc:a70e8c902cec810b4430f50e77465cb00 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a70e8c902cec810b4430f50e77465cb00">更多...</a><br /></td></tr>
<tr class="separator:a70e8c902cec810b4430f50e77465cb00 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8e5a51823fded01fb75c2d082c5e49c inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#ab8e5a51823fded01fb75c2d082c5e49c">estimateRigidTransformation</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_src, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_tgt, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:ab8e5a51823fded01fb75c2d082c5e49c inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate a rigid rotation transformation between a source and a target point cloud using SVD.  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#ab8e5a51823fded01fb75c2d082c5e49c">更多...</a><br /></td></tr>
<tr class="separator:ab8e5a51823fded01fb75c2d082c5e49c inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fe2656eeacf42f2a49db0851651c5ac inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a4fe2656eeacf42f2a49db0851651c5ac">estimateRigidTransformation</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_src, const std::vector&lt; int &gt; &amp;indices_src, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_tgt, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:a4fe2656eeacf42f2a49db0851651c5ac inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate a rigid rotation transformation between a source and a target point cloud using SVD.  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a4fe2656eeacf42f2a49db0851651c5ac">更多...</a><br /></td></tr>
<tr class="separator:a4fe2656eeacf42f2a49db0851651c5ac inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d4911a7ea2ee1bc54635f2059b31c8b inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a1d4911a7ea2ee1bc54635f2059b31c8b">estimateRigidTransformation</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_src, const std::vector&lt; int &gt; &amp;indices_src, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_tgt, const std::vector&lt; int &gt; &amp;indices_tgt, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:a1d4911a7ea2ee1bc54635f2059b31c8b inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate a rigid rotation transformation between a source and a target point cloud using SVD.  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a1d4911a7ea2ee1bc54635f2059b31c8b">更多...</a><br /></td></tr>
<tr class="separator:a1d4911a7ea2ee1bc54635f2059b31c8b inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c3276b3f506d08339686a6d0feaf990 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a2c3276b3f506d08339686a6d0feaf990">estimateRigidTransformation</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_src, const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;cloud_tgt, const pcl::Correspondences &amp;correspondences, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:a2c3276b3f506d08339686a6d0feaf990 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate a rigid rotation transformation between a source and a target point cloud using SVD.  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a2c3276b3f506d08339686a6d0feaf990">更多...</a><br /></td></tr>
<tr class="separator:a2c3276b3f506d08339686a6d0feaf990 inherit pub_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-methods"></a>
静态 Protected 成员函数</h2></td></tr>
<tr class="memitem:ae419bfa5c70cac061c92247c74acafdc"><td class="memItemLeft" align="right" valign="top"><a id="ae419bfa5c70cac061c92247c74acafdc"></a>
static bool&#160;</td><td class="memItemRight" valign="bottom"><b>compareCorrespondences</b> (const <a class="el" href="structpcl_1_1_correspondence.html">pcl::Correspondence</a> &amp;a, const <a class="el" href="structpcl_1_1_correspondence.html">pcl::Correspondence</a> &amp;b)</td></tr>
<tr class="separator:ae419bfa5c70cac061c92247c74acafdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:ab2dc15bb159e95e7341ef5bf99f2573d"><td class="memItemLeft" align="right" valign="top"><a id="ab2dc15bb159e95e7341ef5bf99f2573d"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>target_points_</b></td></tr>
<tr class="separator:ab2dc15bb159e95e7341ef5bf99f2573d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b268285371faf20948e7a1de2190afc"><td class="memItemLeft" align="right" valign="top"><a id="a6b268285371faf20948e7a1de2190afc"></a>
<a class="el" href="classpcl_1_1_kd_tree_f_l_a_n_n.html">pcl::KdTreeFLANN</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>kdtree_</b></td></tr>
<tr class="separator:a6b268285371faf20948e7a1de2190afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a109564b583c9a12e1c6dfa574a5006ba"><td class="memItemLeft" align="right" valign="top"><a id="a109564b583c9a12e1c6dfa574a5006ba"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><b>new_to_old_energy_ratio_</b></td></tr>
<tr class="separator:a109564b583c9a12e1c6dfa574a5006ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1registration_1_1_transformation_estimation_s_v_d')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;</a></td></tr>
<tr class="memitem:a395a2b2f9c5d85e883b0b81ec08c4c5b inherit pro_attribs_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top"><a id="a395a2b2f9c5d85e883b0b81ec08c4c5b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>use_umeyama_</b></td></tr>
<tr class="separator:a395a2b2f9c5d85e883b0b81ec08c4c5b inherit pro_attribs_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
额外继承的成员函数</h2></td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html">pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;</a></td></tr>
<tr class="memitem:a101a408eddee97434c8d5cebfc3c099a inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a101a408eddee97434c8d5cebfc3c099a">estimateRigidTransformation</a> (<a class="el" href="classpcl_1_1_const_cloud_iterator.html">ConstCloudIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;source_it, <a class="el" href="classpcl_1_1_const_cloud_iterator.html">ConstCloudIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &amp;target_it, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:a101a408eddee97434c8d5cebfc3c099a inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate a rigid rotation transformation between a source and a target  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a101a408eddee97434c8d5cebfc3c099a">更多...</a><br /></td></tr>
<tr class="separator:a101a408eddee97434c8d5cebfc3c099a inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95dd96b2e6cce3a1add3ce7648434134 inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a95dd96b2e6cce3a1add3ce7648434134">getTransformationFromCorrelation</a> (const Eigen::Matrix&lt; Scalar, Eigen::Dynamic, Eigen::Dynamic &gt; &amp;cloud_src_demean, const Eigen::Matrix&lt; Scalar, 4, 1 &gt; &amp;centroid_src, const Eigen::Matrix&lt; Scalar, Eigen::Dynamic, Eigen::Dynamic &gt; &amp;cloud_tgt_demean, const Eigen::Matrix&lt; Scalar, 4, 1 &gt; &amp;centroid_tgt, Matrix4 &amp;transformation_matrix) const</td></tr>
<tr class="memdesc:a95dd96b2e6cce3a1add3ce7648434134 inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Obtain a 4x4 rigid transformation matrix from a correlation matrix H = src * tgt'  <a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#a95dd96b2e6cce3a1add3ce7648434134">更多...</a><br /></td></tr>
<tr class="separator:a95dd96b2e6cce3a1add3ce7648434134 inherit pro_methods_classpcl_1_1registration_1_1_transformation_estimation_s_v_d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">成员函数说明</h2>
<a id="afbd539da63874303468d2ae65a3a2496"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbd539da63874303468d2ae65a3a2496">&#9670;&nbsp;</a></span>align()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT , typename Scalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html">pcl::recognition::TrimmedICP</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Scalar &gt;::align </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>source_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_source_points_to_use</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Matrix4 &amp;&#160;</td>
          <td class="paramname"><em>guess_and_result</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The method performs trimmed ICP, i.e., it rigidly registers the source to the target (passed to the <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#adc59783e43985ad88d7385efa1245bdc" title="Call this method before calling align().">init()</a> method). </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">source_points</td><td>is the point cloud to be registered to the target. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_source_points_to_use</td><td>gives the number of closest source points taken into account for registration. By closest source points we mean the source points closest to the target. These points are computed anew at each iteration. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">guess_and_result</td><td>is the estimated rigid transform. IMPORTANT: this matrix is also taken as the initial guess for the alignment. If there is no guess, set the matrix to identity! </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        {</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;          <span class="keywordtype">int</span> num_trimmed_source_points = num_source_points_to_use, num_source_points = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (source_points.size ());</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;          <span class="keywordflow">if</span> ( num_trimmed_source_points &gt;= num_source_points )</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;          {</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            printf (<span class="stringliteral">&quot;WARNING in &#39;TrimmedICP::%s()&#39;: the user-defined number of source points of interest is greater or equal to &quot;</span></div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;                    <span class="stringliteral">&quot;the total number of source points. Trimmed ICP will work correctly but won&#39;t be very efficient. Either set &quot;</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                    <span class="stringliteral">&quot;the number of source points to use to a lower value or use standard ICP.\n&quot;</span>, __func__);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            num_trimmed_source_points = num_source_points;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;          }</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;          <span class="comment">// These are vectors containing source to target correspondences</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;          pcl::Correspondences full_src_to_tgt (num_source_points), trimmed_src_to_tgt (num_trimmed_source_points);</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;          <span class="comment">// Some variables for the closest point search</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;          <a class="code" href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a> transformed_source_point;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;          std::vector&lt;int&gt; target_index (1);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;          std::vector&lt;float&gt; sqr_dist_to_target (1);</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;          <span class="keywordtype">float</span> old_energy, energy = std::numeric_limits&lt;float&gt;::max ();</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">//          printf (&quot;\nalign\n&quot;);</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;          <span class="keywordflow">do</span></div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;          {</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            <span class="comment">// Update the correspondences</span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i &lt; num_source_points ; ++i )</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            {</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;              <span class="comment">// Transform the i-th source point based on the current transform matrix</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;              aux::transform (guess_and_result, source_points.<a class="code" href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">points</a>[i], transformed_source_point);</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;              <span class="comment">// Perform the closest point search</span></div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;              kdtree_.nearestKSearch (transformed_source_point, 1, target_index, sqr_dist_to_target);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;              <span class="comment">// Update the i-th correspondence</span></div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;              full_src_to_tgt[i].index_query = i;</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;              full_src_to_tgt[i].index_match = target_index[0];</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;              full_src_to_tgt[i].distance = sqr_dist_to_target[0];</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            <span class="comment">// Sort in ascending order according to the squared distance</span></div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;            std::sort (full_src_to_tgt.begin (), full_src_to_tgt.end (), TrimmedICP::compareCorrespondences);</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;            old_energy = energy;</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            energy = 0.0f;</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;            <span class="comment">// Now, setup the trimmed correspondences used for the transform estimation</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="keywordflow">for</span> ( <span class="keywordtype">int</span> i = 0 ; i &lt; num_trimmed_source_points ; ++i )</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;            {</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;              trimmed_src_to_tgt[i].index_query = full_src_to_tgt[i].index_query;</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;              trimmed_src_to_tgt[i].index_match = full_src_to_tgt[i].index_match;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;              energy += full_src_to_tgt[i].distance;</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            this-&gt;<a class="code" href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#ab8e5a51823fded01fb75c2d082c5e49c">estimateRigidTransformation</a> (source_points, *target_points_, trimmed_src_to_tgt, guess_and_result);</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment">//            printf (&quot;energy = %f, energy diff. = %f, ratio = %f\n&quot;, energy, old_energy - energy, energy/old_energy);</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;          }</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;          <span class="keywordflow">while</span> ( energy/old_energy &lt; new_to_old_energy_ratio_ ); <span class="comment">// iterate if enough progress</span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">//          printf (&quot;\n&quot;);</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_af16a62638198313b9c093127c492c884"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#af16a62638198313b9c093127c492c884">pcl::PointCloud::points</a></div><div class="ttdeci">std::vector&lt; PointT, Eigen::aligned_allocator&lt; PointT &gt; &gt; points</div><div class="ttdoc">The point data.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:410</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_transformation_estimation_s_v_d_html_ab8e5a51823fded01fb75c2d082c5e49c"><div class="ttname"><a href="classpcl_1_1registration_1_1_transformation_estimation_s_v_d.html#ab8e5a51823fded01fb75c2d082c5e49c">pcl::registration::TransformationEstimationSVD&lt; PointT, PointT, Scalar &gt;::estimateRigidTransformation</a></div><div class="ttdeci">void estimateRigidTransformation(const pcl::PointCloud&lt; PointT &gt; &amp;cloud_src, const pcl::PointCloud&lt; PointT &gt; &amp;cloud_tgt, Matrix4 &amp;transformation_matrix) const</div><div class="ttdoc">Estimate a rigid rotation transformation between a source and a target point cloud using SVD.</div><div class="ttdef"><b>Definition:</b> transformation_estimation_svd.hpp:47</div></div>
<div class="ttc" id="astructpcl_1_1_point_x_y_z_html"><div class="ttname"><a href="structpcl_1_1_point_x_y_z.html">pcl::PointXYZ</a></div><div class="ttdoc">A point structure representing Euclidean xyz coordinates. (SSE friendly)</div><div class="ttdef"><b>Definition:</b> point_types.hpp:282</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="adc59783e43985ad88d7385efa1245bdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc59783e43985ad88d7385efa1245bdc">&#9670;&nbsp;</a></span>init()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT , typename Scalar &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html">pcl::recognition::TrimmedICP</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Scalar &gt;::init </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Call this method before calling <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#afbd539da63874303468d2ae65a3a2496" title="The method performs trimmed ICP, i.e., it rigidly registers the source to the target (passed to the i...">align()</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>is target point cloud. The method builds a kd-tree based on 'target' for performing fast closest point search. The source point cloud will be registered to 'target' (see <a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html#afbd539da63874303468d2ae65a3a2496" title="The method performs trimmed ICP, i.e., it rigidly registers the source to the target (passed to the i...">align()</a> method). </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        {</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;          target_points_ = target;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;          kdtree_.setInputCloud (target);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>recognition/include/pcl/recognition/ransac_based/<a class="el" href="ransac__based_2trimmed__icp_8h_source.html">trimmed_icp.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>recognition</b></li><li class="navelem"><a class="el" href="classpcl_1_1recognition_1_1_trimmed_i_c_p.html">TrimmedICP</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
